package cn.jingyuan.swan.system.model;

import cn.jingyuan.swan.system.enums.SysAccStatusEnum;
import cn.jingyuan.swan.system.enums.SysAccountTypeEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Map;

@Getter
@Setter
@ToString
@Accessors(chain = true)
public class UserAccount implements Serializable {

    /** 用户 id */
    Long userId;

    /** 账号 id */
    Long accountId;

    /** 账号标识：手机号、邮箱、 用户名 */
    String account;

    /** 账号类型 */
    SysAccountTypeEnum accountType;

    /** 密码凭证 */
    String password;

    /** 用户昵称 */
    String nickname;

    /** 头像 */
    String avatar;

    /** 注册 ip */
    String registerIp;

    /** 账号状态 */
    SysAccStatusEnum accStatus;

    /** 用户角色 */
    Collection<Map> roles = new ArrayList<>();

    /** 用户权限 */
    Collection<SimpleAuthority> authorities;

    /** 注册时间 */
    Date createTime;

    /** 更新时间 */
    Date updateTime;

}
